using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("DialogManager")]
	public class DialogManager : MonoBehaviour
	{
		public enum DialogType
		{
			ALERT,
			SEASON_END,
			FRIENDLY_CHALLENGE,
			TAVERN_BRAWL_CHALLENGE,
			EXISTING_ACCOUNT,
			CARD_LIST,
			STANDARD_COMING_SOON,
			ROTATION_TUTORIAL,
			HALL_OF_FAME,
			TAVERN_BRAWL_CHOICE,
			FIRESIDE_BRAWL_OK,
			FIRESIDE_GATHERING_JOIN,
			FIRESIDE_FIND_EVENT,
			FIRESIDE_LOCATION_HELPER,
			FIRESIDE_INNKEEPER_SETUP,
			RETURNING_PLAYER_OPT_OUT,
			OUTSTANDING_DRAFT_TICKETS,
			FREE_ARENA_WIN,
			GENERIC_BASIC_POPUP
		}

		[Attribute38("DialogManager.DialogRequest")]
		public class DialogRequest : MonoClass
		{
			public DialogType m_type => method_2<DialogType>("m_type");

			public UserAttentionBlocker m_attentionCategory => method_2<UserAttentionBlocker>("m_attentionCategory");

			public object m_info => method_3<object>("m_info");

			public object m_userData => method_3<object>("m_userData");

			public bool m_isFake => method_2<bool>("m_isFake");

			public DialogRequest(IntPtr address, string className)
				: base(address, className)
			{
			}

			public DialogRequest(IntPtr address)
				: this(address, "DialogRequest")
			{
			}
		}

		[Attribute38("DialogManager.DialogTypeMapping")]
		public class DialogTypeMapping : MonoClass
		{
			public DialogType m_type => method_2<DialogType>("m_type");

			public string m_prefabName => method_4("m_prefabName");

			public DialogTypeMapping(IntPtr address, string className)
				: base(address, className)
			{
			}

			public DialogTypeMapping(IntPtr address)
				: this(address, "DialogTypeMapping")
			{
			}
		}

		[Attribute38("DialogManager.SeasonEndDialogRequestInfo")]
		public class SeasonEndDialogRequestInfo : MonoClass
		{
			public NetCache.ProfileNoticeMedal m_noticeMedal => method_3<NetCache.ProfileNoticeMedal>("m_noticeMedal");

			public NetCache.ProfileNoticeBonusStars m_noticeBonusStars => method_3<NetCache.ProfileNoticeBonusStars>("m_noticeBonusStars");

			public SeasonEndDialogRequestInfo(IntPtr address, string className)
				: base(address, className)
			{
			}

			public SeasonEndDialogRequestInfo(IntPtr address)
				: this(address, "SeasonEndDialogRequestInfo")
			{
			}
		}

		public DialogBase m_currentDialog => method_3<DialogBase>("m_currentDialog");

		public bool m_loadingDialog => method_2<bool>("m_loadingDialog");

		public bool m_isReadyForSeasonEndPopup => method_2<bool>("m_isReadyForSeasonEndPopup");

		public bool m_waitingToShowSeasonEndDialog => method_2<bool>("m_waitingToShowSeasonEndDialog");

		public NetCache.ProfileNoticeMedal m_medalNotice => method_3<NetCache.ProfileNoticeMedal>("m_medalNotice");

		public NetCache.ProfileNoticeBonusStars m_bonusStarsNotice => method_3<NetCache.ProfileNoticeBonusStars>("m_bonusStarsNotice");

		public List<long> m_handledMedalNoticeIDs => method_3<Class270<long>>("m_handledMedalNoticeIDs")?.method_25();

		public List<DialogTypeMapping> m_typeMapping => method_3<Class271<DialogTypeMapping>>("m_typeMapping")?.method_25();

		public DialogManager(IntPtr address, string className)
			: base(address, className)
		{
		}

		public DialogManager(IntPtr address)
			: this(address, "DialogManager")
		{
		}

		public static DialogManager Get()
		{
			return MonoClass.smethod_15<DialogManager>(TritonHs.MainAssemblyPath, "", "DialogManager", "Get", Array.Empty<object>());
		}

		public void Awake()
		{
			method_8("Awake");
		}

		public void OnDestroy()
		{
			method_8("OnDestroy");
		}

		public void GoBack()
		{
			method_8("GoBack");
		}

		public void ReadyForSeasonEndPopup(bool ready)
		{
			method_8("ReadyForSeasonEndPopup", ready);
		}

		public bool HandleKeyboardInput()
		{
			return method_11<bool>("HandleKeyboardInput", Array.Empty<object>());
		}

		public bool AddToQueue(DialogRequest request)
		{
			return method_11<bool>("AddToQueue", new object[1] { request });
		}

		public void UpdateQueue()
		{
			method_8("UpdateQueue");
		}

		public void ShowPopup(AlertPopup.PopupInfo info)
		{
			method_9("ShowPopup", new Class276.Enum20[1] { Class276.Enum20.Class }, info);
		}

		public bool ShowUniquePopup(AlertPopup.PopupInfo info)
		{
			return method_10<bool>("ShowUniquePopup", new Class276.Enum20[1] { Class276.Enum20.Class }, new object[1] { info });
		}

		public void ShowMessageOfTheDay(string message)
		{
			method_8("ShowMessageOfTheDay", message);
		}

		public void RemoveUniquePopupRequestFromQueue(string id)
		{
			method_8("RemoveUniquePopupRequestFromQueue", id);
		}

		public bool WaitingToShowSeasonEndDialog()
		{
			return method_11<bool>("WaitingToShowSeasonEndDialog", Array.Empty<object>());
		}

		public void ShowFiresideOKDialog()
		{
			method_8("ShowFiresideOKDialog");
		}

		public void ShowCardListPopup(UserAttentionBlocker attentionCategory, CardListPopup.Info info)
		{
			method_8("ShowCardListPopup", attentionCategory, info);
		}

		public void ShowStandardComingSoonPopup(UserAttentionBlocker attentionCategory, BasicPopup.PopupInfo info)
		{
			method_8("ShowStandardComingSoonPopup", attentionCategory, info);
		}

		public void ShowSetRotationTutorialPopup(UserAttentionBlocker attentionCategory, SetRotationTutorialDialog.Info info)
		{
			method_8("ShowSetRotationTutorialPopup", attentionCategory, info);
		}

		public void ShowHallOfFamePopup(UserAttentionBlocker attentionCategory, HallOfFameDialog.Info info)
		{
			method_8("ShowHallOfFamePopup", attentionCategory, info);
		}

		public void ShowOutstandingDraftTicketPopup(UserAttentionBlocker attentionCategory, OutstandingDraftTicketDialog.Info info)
		{
			method_8("ShowOutstandingDraftTicketPopup", attentionCategory, info);
		}

		public void ShowFreeArenaWinPopup(UserAttentionBlocker attentionCategory, FreeArenaWinDialog.Info info)
		{
			method_8("ShowFreeArenaWinPopup", attentionCategory, info);
		}

		public bool ShowBasicPopup(UserAttentionBlocker attentionCategory, BasicPopup.PopupInfo info)
		{
			return method_11<bool>("ShowBasicPopup", new object[2] { attentionCategory, info });
		}

		public void ClearAllImmediately()
		{
			method_8("ClearAllImmediately");
		}

		public bool ShowingDialog()
		{
			return method_11<bool>("ShowingDialog", Array.Empty<object>());
		}

		public bool ShowingHighPriorityDialog()
		{
			return method_11<bool>("ShowingHighPriorityDialog", Array.Empty<object>());
		}

		public void LoadPopup(DialogRequest request)
		{
			method_8("LoadPopup", request);
		}

		public void OnPopupLoaded(AssetReference assetRef, GameObject go, object callbackData)
		{
			method_8("OnPopupLoaded", assetRef, go, callbackData);
		}

		public void DestroyPopupAssetsIfPossible()
		{
			method_8("DestroyPopupAssetsIfPossible");
		}

		public void ProcessRequest(DialogRequest request, DialogBase dialog)
		{
			method_8("ProcessRequest", request, dialog);
		}

		public void ProcessExistingAccountRequest(DialogRequest request, ExistingAccountPopup exAcctPopup)
		{
			method_8("ProcessExistingAccountRequest", request, exAcctPopup);
		}

		public void ProcessAlertRequest(DialogRequest request, AlertPopup alertPopup)
		{
			method_8("ProcessAlertRequest", request, alertPopup);
		}

		public void ProcessFiresideBrawlChoiceRequest(DialogRequest request, FiresideBrawlChoiceDialog choicePopup)
		{
			method_8("ProcessFiresideBrawlChoiceRequest", request, choicePopup);
		}

		public void ProcessFiresideBrawlOkRequest(DialogRequest request, FiresideBrawlOkDialog okPopup)
		{
			method_8("ProcessFiresideBrawlOkRequest", request, okPopup);
		}

		public void ProcessFiresideGatheringNearbyRequest(DialogRequest request, FiresideGatheringJoinDialog choicePopup)
		{
			method_8("ProcessFiresideGatheringNearbyRequest", request, choicePopup);
		}

		public void ProcessFiresideGatheringFindEventRequest(DialogRequest request, FiresideGatheringFindEventDialog choicePopup)
		{
			method_8("ProcessFiresideGatheringFindEventRequest", request, choicePopup);
		}

		public void ProcessFiresideGatheringInnkeeperSetupRequest(DialogRequest request, FiresideGatheringInnkeeperSetupDialog choicePopup)
		{
			method_8("ProcessFiresideGatheringInnkeeperSetupRequest", request, choicePopup);
		}

		public void ProcessFiresideGatheringLocationHelperRequest(DialogRequest request, FiresideGatheringLocationHelperDialog fsgLocationHelperPopup)
		{
			method_8("ProcessFiresideGatheringLocationHelperRequest", request, fsgLocationHelperPopup);
		}

		public void ProcessBasicPopupRequest(DialogRequest request, BasicPopup basicPopup)
		{
			method_8("ProcessBasicPopupRequest", request, basicPopup);
		}

		public void ProcessMedalRequest(DialogRequest request, SeasonEndDialog seasonEndDialog)
		{
			method_8("ProcessMedalRequest", request, seasonEndDialog);
		}

		public void ProcessFriendlyChallengeRequest(DialogRequest request, FriendlyChallengeDialog friendlyChallengeDialog)
		{
			method_8("ProcessFriendlyChallengeRequest", request, friendlyChallengeDialog);
		}

		public void ProcessCardListRequest(DialogRequest request, CardListPopup cardListPopup)
		{
			method_8("ProcessCardListRequest", request, cardListPopup);
		}

		public void ProcessSetRotationTutorialRequest(DialogRequest request, SetRotationTutorialDialog setRotationTutorialDialog)
		{
			method_8("ProcessSetRotationTutorialRequest", request, setRotationTutorialDialog);
		}

		public void ProcessHallOfFameRequest(DialogRequest request, HallOfFameDialog hallOfFameDialog)
		{
			method_8("ProcessHallOfFameRequest", request, hallOfFameDialog);
		}

		public void ProcessReturningPlayerOptOutRequest(DialogRequest request, ReturningPlayerOptOutDialog returningPlayerOptOutDialog)
		{
			method_8("ProcessReturningPlayerOptOutRequest", request, returningPlayerOptOutDialog);
		}

		public void ProcessOutstandingDraftTicketDialog(DialogRequest request, OutstandingDraftTicketDialog outstandingDraftTicketDialog)
		{
			method_8("ProcessOutstandingDraftTicketDialog", request, outstandingDraftTicketDialog);
		}

		public void ProcessFreeArenaWinDialog(DialogRequest request, FreeArenaWinDialog freeArenaWinDialog)
		{
			method_8("ProcessFreeArenaWinDialog", request, freeArenaWinDialog);
		}

		public void OnCurrentDialogHidden(DialogBase dialog, object userData)
		{
			method_8("OnCurrentDialogHidden", dialog, userData);
		}
	}
}
